diff --git a/system/libraries/Controller.php b/system/libraries/Controller.php
index afd963a..97aa4b7 100644
--- a/system/libraries/Controller.php
+++ b/system/libraries/Controller.php
@@ -29,7 +29,6 @@
  */
 class Controller extends CI_Base {
 
-	var $ci_is_loaded		= array();
 	var $_ci_models			= array();
 	var $_ci_scaffolding	= FALSE;
 	var $_ci_scaff_table	= FALSE;
@@ -54,15 +53,18 @@
 
 		// This allows anything loaded using $this->load (viwes, files, etc.)
 		// to become accessible from within the Controller class functions.
-		foreach ($this->ci_is_loaded as $val)
+		foreach (get_object_vars($this) as $key => $var)
 		{
-			$this->load->$val =& $this->$val;
+			if (is_object($var))
+			{
+				$this->load->$key =& $this->$key;
+			}
 		}
-			
+		
 		log_message('debug', "Controller Class Initialized");
 	}
   	// END Controller()
-  	
+   	
 	// --------------------------------------------------------------------
 
 	/**
@@ -75,27 +77,28 @@
 	 * @param	mixed	any additional parameters
 	 * @return 	void
 	 */
-	function _ci_initialize($what, $params = FALSE)
+	function _ci_initialize($class, $params = FALSE)
 	{		
-		$method = '_ci_init_'.strtolower(str_replace(EXT, '', $what));
+		$class = strtolower(str_replace(EXT, '', $class));
+		$method = '_ci_init_'.$class;
 
 		if ( ! method_exists($this, $method))
-		{
-			$method = substr($method, 4);
+		{		
+			$class = ucfirst($class);
 		
-			if ( ! file_exists(APPPATH.'init/'.$method.EXT))
+			if ( ! file_exists(APPPATH.'libraries/'.$class.EXT))
 			{
-				if ( ! file_exists(BASEPATH.'init/'.$method.EXT))
+				if ( ! file_exists(BASEPATH.'libraries/'.$class.EXT))
 				{
-					log_message('error', "Unable to load the requested class: ".$what);
-					show_error("Unable to load the class: ".$what);
+					log_message('error', "Unable to load the requested class: ".$class);
+					show_error("Unable to load the class: ".$class);
 				}
 				
-				include(BASEPATH.'init/'.$method.EXT);
+				include_once(BASEPATH.'libraries/'.$class.EXT);
 			}
 			else
 			{
-				include(APPPATH.'init/'.$method.EXT);
+				include_once(APPPATH.'libraries/'.$class.EXT);
 			}
 		}
 		else
@@ -268,11 +271,9 @@
 		{
 			$class = strtolower($val);
 			$this->$class =& _load_class('CI_'.$val);
-			$this->ci_is_loaded[] = $class;
 		}
 		
 		$this->lang	=& _load_class('CI_Language');
-		$this->ci_is_loaded[] = 'lang';
 	
 		// In PHP 4 the Controller class is a child of CI_Loader.
 		// In PHP 5 we run it as its own class.
@@ -280,8 +281,6 @@
 		{
 			$this->load = new CI_Loader();
 		}
-		
-		$this->ci_is_loaded[] = 'load';
 	}
   	// END _ci_assign_core()
   	
@@ -393,7 +392,6 @@
 		}
 		
 		$obj =& get_instance();
-		$obj->ci_is_loaded[] = 'db';
 		$obj->db =& $DB;
 	}
   	// END _ci_init_database()
@@ -409,10 +407,10 @@
 	 */
 	function _ci_is_loaded($class)
 	{
-		return ( ! in_array($class, $this->ci_is_loaded)) ? FALSE : TRUE;
+		return ( ! isset($this->$class) OR ! is_object($this->$class)) ? FALSE : TRUE;
 	}
   	// END _ci_is_loaded()
-  	
+  	  	
 	// --------------------------------------------------------------------
 
 	/**
